// Copyright 2006 Bret Taylor
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.

#include "visitor.h"

namespace indie {

Visitor::Visitor() {
}

Visitor::~Visitor() {
}

void Visitor::Enter(const AstClassType& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstArrayType& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstUnionType& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstVariable& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstMethod& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstClass& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstFile& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstBlockStatement& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstExpressionStatement& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstAssignment& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstVariableDeclaration& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstEmptyStatement& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstIf& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstWhile& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstFor& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstBreak& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstReturn& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstParenthesizedExpression& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstAccess& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstArrayAccess& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstBinaryExpression& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstUnaryExpression& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstCall& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstNewInstance& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstNewArray& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstTypeTest& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstThis& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstIntegerConstant& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstStringConstant& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstFloatConstant& ast) {
    EnterDefault(ast);
}

void Visitor::Enter(const AstBooleanConstant& ast) {
    EnterDefault(ast);
}

void Visitor::Leave(const AstClassType& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstArrayType& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstUnionType& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstVariable& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstMethod& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstClass& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstFile& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstBlockStatement& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstExpressionStatement& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstAssignment& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstVariableDeclaration& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstEmptyStatement& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstIf& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstWhile& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstFor& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstBreak& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstReturn& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstParenthesizedExpression& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstAccess& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstArrayAccess& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstBinaryExpression& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstUnaryExpression& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstCall& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstNewInstance& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstNewArray& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstTypeTest& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstThis& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstIntegerConstant& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstStringConstant& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstFloatConstant& ast) {
    LeaveDefault(ast);
}

void Visitor::Leave(const AstBooleanConstant& ast) {
    LeaveDefault(ast);
}

void Visitor::EnterDefault(const Ast& ast) {
}

void Visitor::LeaveDefault(const Ast& ast) {
}

} // namespace indie
